package day0331;

import javax.swing.*;
import java.util.ArrayList;

public class Yang2 {
    public static void main(String[] args) {
        //1.用JFrame类创建一个窗口win
        JFrame win=new JFrame();//组件1-窗口(相框)

        //3.用JPanel类创建一个面板pane
        JPanel pane=new JPanel();//组件2-面板(相框后的木板)

        //4.设置面板属性，并给面板中添加组件(标签<标签中包含背景图>)
        pane.setLayout(null);//4.1.用面板pane调用JPanel中的setLayout(null)取消默认的排版方式(从左到右排版从上到下排版的)
        //没有排版方式后只能用坐标和宽高来定位组件，这样可以让背景图和按钮叠加显示(举例：将背景图设置到0，0坐标处(宽480，高800)，
        //将按钮设置到10，10)

        JLabel jla=new JLabel(new ImageIcon("img/背景.jpg"));//4.2.组件3和组件4-标签中包含一个背景图(塑封纸里包含一个照片)
        jla.setLocation(0,0);//4.3、用jla变量调用JLabel中的setLocation()设置标签的坐标(背景图ImageIcon也会采用这个坐标)
        jla.setSize(480,800);//4.4、用jla变量调用JLabel中的setLocation()设置标签的宽高(背景图ImageIcon也会采用这个宽高)
        pane.add(jla);//4.5、将标签放到面板中(将塑封好的照片放到木板上, 木板最后要放到相框中)

        //6.调用本类中的createButtons()方法获取144个按钮(此方法会创建144个按钮放在一个ArrayList集合中返回)
        ArrayList<JButton> buttons=createButtons();


        //5.将面板放到窗口中(将放了照片的木板放到相框后边)
        win.add(pane);


        //2.设置窗口的属性(大小、居中、能被关闭、禁用修改大小、设置窗口显示)
        win.setSize(480,800);//用win变量调用JFrame的setSize()方法设置窗口宽高
        win.setLocationRelativeTo(null);//用win变量调用JFrame的setLocationRelativeTo()方法设置窗口居中
        win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//用win变量调用JFrame的setDefaultCloseOperation()方法设置窗口能关闭
        win.setResizable(false);//用win变量调用JFrame的setResizable()方法设置窗口不能修改大小
        win.setVisible(true);//用win变量调用JFrame的setVisible()方法设置窗口显示
    }

    /**
     * 6.定义一个createButtons方法，创建144个按钮放到一个ArrayList集合中返回。
     * @return ArrayLsit<JButton>  btns;    (存储了144个按钮的ArrayList集合)
     */
    public static ArrayList<JButton> createButtons(){
        //6.1、用一个ArrayList来存储144个按钮比数组更方便(存元素的代码都写好了，只需要调用).
        ArrayList<JButton> btns=new ArrayList<JButton>();//定义一个ArrayList，存储144个按钮
        //6.2、用for循环创建144个按钮放到btns集合中(16个按钮用9遍)
        String[] names = {"刷子","剪刀","南瓜","奶瓶","干草", //names数组存储16个图片的名字。
                "手套","树桩","兔子","毛线","水桶",
                "树", "苹果","白菜", "草", "萝卜","铃铛"};
        for (int i = 0; i < 9; i++) {//将16个图片名使用了9次  (总共创建了16*9个图片对象)
            for (int j = 0; j < names.length; j++) {
                String imgName=names[j];//6.2.1、从names数组中获取图片名
                //6.2.2、用imgName和"img"以及".jpg"拼接路径来创建一个图片对象放入到 创建的 JButton中(此按钮会放入到btns集合中)
                JButton b=new JButton(new ImageIcon("img/" +imgName +".png"));//6.2.2.创建按钮
                btns.add(b);//6.2.3、将创建的按钮添加到btns集合中
            }
        }
        //6.3、返回btns集合(集合中存储了144个按钮)
        return btns;
    }

}

